À la réception de la première requête Http, le conteneur de servlets compile et traduit la page JSP en un code Java (qui sera traduit, à son tour, en bytecode par la JVM).
Cette opération peut être refaite pour les prochaines requêtes Http si le code de la page JSP a été modifié.
Le conteneur de servlets peut aussi exécuter cette opération au démarrage du serveur ou au déploiement de l'application web.
Voici un exemple du code Java généré par Tomcat (7) pour la page « test1.jsp » :
-
Code JSP :
-
"Code Java" généré (test1_jsp.java) :
Notes :
-
Le conteneur de servlets commence par charger la classe et créer une instance.
-
Ensuite la méthode _jspInit sera exécutée (appel implicite à partir de la méthode init).
-
À la réception d'une requête Http sur la page JSP, le conteneur de servlets exécutera la méthode _jspService (appel implicite à partir de la méthode service).
-
La méthode _jspDestroy sera exécutée (appel implicite à partir de la méthode destroy) une fois le conteneur de servlets décidera de détruire l'instance de la servlet.
-
Structure hiérarchique de la classe Java générée (test1_jsp.java) :